package com.sugon.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sugon.modules.device.model.DevRepairReplaceSparePartItemVO;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 维修记录单实体
 * 表名 DEV_MAINTEN_REPAIR
 *
 * @author sugon
 * @date 2019-07-18 11:39:51
 */
@Data
public class EnergyDevRepairRecord implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 设备ID
     */
    private String devId;
    /**
     * 设备名称
     */
    private String devName;

    /**
     * 设备编码
     */
    private String devCode;

    /**
     * 故障时间
     */
    private Integer faultTime;
    /**
     * 备注信息
     */
    private String remark;
    /**
     * 解决办法
     */
    private String solution;
    /**
     * 原因
     */
    private String reason;
    /**
     * 故障描述
     */
    private String recordDescr;
    /**
     * 故障类型ID
     */
    private String type;
    /**
     * 故障类型名称
     */
    private String typeName;

    /**
     * 故障类型编码
     */
    private String faultTypeCode;

    /**
     * 主键
     */
    private String id;

    /**
     * 故障时长：生产班组长进行效果确认节点
     * 由效果确认时间 - 上报时间计算得出
     */
    private Long faultNum;

    /**
     * 维修结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date repairEndDate;
    /**
     * 维修开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date repairStartDate;

    /**
     * 上报时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date gmtCreate;

    /**
     * 维修人ID
     */
    private String repairUser;

    /**
     * 维修人姓名
     */
    private String repairUsername;

    /**
     * 是否删除标志
     */
    private Integer delFlag;

    /**
     * 统计的数量
     */
    private Integer num;
    /**
     * 车间名称
     */
    private String workshopName;
    /**
     * 工序名称
     */
    private String devProceName;
    /**
     * 工序号
     */
    private String devProceNo;
    /**
     * 产线名称
     */
    private String devProductName;

    /**
     * 维修过程中更换的备件列表
     */
    private List<DevRepairReplaceSparePartItemVO> replaceSpareList;

    public List<DevRepairReplaceSparePartItemVO> getReplaceSpareList() {
        if (replaceSpareList == null) {
            replaceSpareList = new ArrayList<>();
        }
        return replaceSpareList;
    }
}
